﻿<?xml version="1.0" encoding="utf-8"?>
<!-- 
####################################################################################################################

BE AWARE THAT THE ORDER IN WHICH TYPES ARE DESCRIBED IN THE PROVIDER MANIFEST IS RELEVANT AND HAVE IMPACT IN LOOKUP
PROCESS

#################################################################################################################### 
-->
<ProviderManifest Namespace="EFOracle" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/providermanifest">
  <Types>

    <!--
    ############################################################################
    # Some SQL ANSI types (supported in DDL)
    ############################################################################
    -->   

    <Type Name="smallint" PrimitiveTypeKind="Int16">
    </Type>
    <Type Name="int" PrimitiveTypeKind="Int32">
    </Type>

    <Type Name="ref cursor" PrimitiveTypeKind="Binary">
      <FacetDescriptions>
        <MaxLength DefaultValue="12345" Constant="true" />

        <FixedLength DefaultValue="false" Constant="true" />
      </FacetDescriptions>
    </Type>
    
    <!--
    ############################################################################
    # Oracle built-in types
    ############################################################################
    -->
    
    <Type Name="number" PrimitiveTypeKind="Decimal">
      <FacetDescriptions>
        <Precision Minimum="1" Maximum="38" Constant="false" DefaultValue="18" />
        <Scale Minimum="0" Maximum="38" Constant="false" DefaultValue="0" />
      </FacetDescriptions>
    </Type>
    <Type Name="nvarchar2" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="4000" DefaultValue="4000" Constant="false" />
        <Unicode DefaultValue="true" Constant="true" />
        <FixedLength DefaultValue="false" Constant="true" />
      </FacetDescriptions>
    </Type>
    <Type Name="varchar2" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="4000" DefaultValue="4000" Constant="false" />
        <Unicode DefaultValue="false" Constant="true" />
        <FixedLength DefaultValue="false" Constant="true" />
      </FacetDescriptions>
    </Type>    
    <Type Name="nclob" PrimitiveTypeKind="String" >
      <FacetDescriptions>
        <MaxLength DefaultValue="1073741823" Constant="true" />
        <Unicode DefaultValue="true" Constant="true" />
        <FixedLength DefaultValue="false" Constant="true" />
      </FacetDescriptions>
    </Type>
    <Type Name="clob" PrimitiveTypeKind="String" >
      <FacetDescriptions>
        <MaxLength DefaultValue="2147483647" Constant="true" />
        <Unicode DefaultValue="false" Constant="true" />
        <FixedLength DefaultValue="false" Constant="true" />
      </FacetDescriptions>
    </Type>
    <Type Name="blob" PrimitiveTypeKind="Binary" >
      <FacetDescriptions>
        <MaxLength DefaultValue="2147483647" Constant="true" />
        <FixedLength DefaultValue="false" Constant="true" />
      </FacetDescriptions>
    </Type>
    <Type Name="raw" PrimitiveTypeKind="Binary" >
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="2000" Constant="false" />
        <FixedLength DefaultValue="false" Constant="true" />
      </FacetDescriptions>
    </Type>
    <Type Name="long raw" PrimitiveTypeKind="Binary" >
      <FacetDescriptions>
        <MaxLength DefaultValue="2147483647" Minimum="1" Maximum="2147483647" Constant="false" />
        <FixedLength DefaultValue="false" Constant="true" />
      </FacetDescriptions>
    </Type>
    <Type Name="date" PrimitiveTypeKind="DateTime">
      <FacetDescriptions>
        <Precision Constant="true" DefaultValue="6" />
      </FacetDescriptions>
    </Type>
    <Type Name="timestamp" PrimitiveTypeKind="DateTimeOffset">
      <FacetDescriptions>
        <Precision Minimum="0" Maximum="9" DefaultValue="6" Constant="false" />
      </FacetDescriptions>
    </Type>
    <Type Name="nchar" PrimitiveTypeKind="String">
      <FacetDescriptions>
        <MaxLength Minimum="1" Maximum="4000" DefaultValue="4000" Constant="false" />
        <Unicode DefaultValue="true" Constant="true" />
        <FixedLength DefaultValue="true" Constant="true" />
      </FacetDescriptions>
    </Type>
    <Type Name="binary_double" PrimitiveTypeKind="Double">
    </Type>
    <Type Name="binary_float" PrimitiveTypeKind="Single">
    </Type>
    <Type Name="guid" PrimitiveTypeKind="Guid">
    </Type>
  </Types>
  <Functions>
    <Function Name="LENGTH" BuiltIn="true">
      <ReturnType Type="Int32" />
      <Parameter Name="string_expression" Type="String" Mode="In" />
    </Function>
  </Functions>
</ProviderManifest>
